home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / g_man / cat3 / OpenGL / glaccum.z / glaccum
Encoding:
Text File  |  2002-10-03  |  11.5 KB  |  202 lines

  1.  
  2.  
  3.  
  4. ggggllllAAAAccccccccuuuummmm((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllAAAAccccccccuuuummmm((((3333GGGG))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ggggllllAAAAccccccccuuuummmm - operate on the accumulation buffer
  10.  
  11.  
  12. CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  13.      void ggggllllAAAAccccccccuuuummmm( GLenum _o_p,
  14.                    GLfloat _v_a_l_u_e )
  15.  
  16.  
  17. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  18.      _o_p     Specifies the accumulation buffer operation.  Symbolic constants
  19.             GGGGLLLL____AAAACCCCCCCCUUUUMMMM, GGGGLLLL____LLLLOOOOAAAADDDD, GGGGLLLL____AAAADDDDDDDD, GGGGLLLL____MMMMUUUULLLLTTTT, and GGGGLLLL____RRRREEEETTTTUUUURRRRNNNN are accepted.
  20.  
  21.      _v_a_l_u_e  Specifies a floating-point value used in the accumulation buffer
  22.             operation.  _o_p determines how _v_a_l_u_e is used.
  23.  
  24. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  25.      The accumulation buffer is an extended-range color buffer.  Images are
  26.      not rendered into it.  Rather, images rendered into one of the color
  27.      buffers are added to the contents of the accumulation buffer after
  28.      rendering.  Effects such as antialiasing (of points, lines, and
  29.      polygons), motion blur, and depth of field can be created by accumulating
  30.      images generated with different transformation matrices.
  31.  
  32.      Each pixel in the accumulation buffer consists of red, green, blue, and
  33.      alpha values.  The number of bits per component in the accumulation
  34.      buffer depends on the implementation. You can examine this number by
  35.      calling ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv four times, with arguments GGGGLLLL____AAAACCCCCCCCUUUUMMMM____RRRREEEEDDDD____BBBBIIIITTTTSSSS,
  36.      GGGGLLLL____AAAACCCCCCCCUUUUMMMM____GGGGRRRREEEEEEEENNNN____BBBBIIIITTTTSSSS, GGGGLLLL____AAAACCCCCCCCUUUUMMMM____BBBBLLLLUUUUEEEE____BBBBIIIITTTTSSSS, and GGGGLLLL____AAAACCCCCCCCUUUUMMMM____AAAALLLLPPPPHHHHAAAA____BBBBIIIITTTTSSSS.
  37.      Regardless of the number of bits per component, the range of values
  38.      stored by each component is [-1, 1].  The accumulation buffer pixels are
  39.      mapped one-to-one with frame buffer pixels.
  40.  
  41.      ggggllllAAAAccccccccuuuummmm operates on the accumulation buffer.  The first argument, _o_p, is
  42.      a symbolic constant that selects an accumulation buffer operation.  The
  43.      second argument, _v_a_l_u_e, is a floating-point value to be used in that
  44.      operation.  Five operations are specified:  GGGGLLLL____AAAACCCCCCCCUUUUMMMM, GGGGLLLL____LLLLOOOOAAAADDDD, GGGGLLLL____AAAADDDDDDDD,
  45.      GGGGLLLL____MMMMUUUULLLLTTTT, and GGGGLLLL____RRRREEEETTTTUUUURRRRNNNN.
  46.  
  47.      All accumulation buffer operations are limited to the area of the current
  48.      scissor box and applied identically to the red, green, blue, and alpha
  49.      components of each pixel.  If a ggggllllAAAAccccccccuuuummmm operation results in a value
  50.      outside the range [-1, 1], the contents of an accumulation buffer pixel
  51.      component are undefined.
  52.  
  53.      The operations are as follows:
  54.  
  55.      GGGGLLLL____AAAACCCCCCCCUUUUMMMM      Obtains R, G, B, and A values from the buffer currently
  56.                    selected for reading (see ggggllllRRRReeeeaaaaddddBBBBuuuuffffffffeeeerrrr).  Each component
  57.                                         n
  58.                    value is divided by 2 -1, where n is the number of bits
  59.                    allocated to each color component in the currently selected
  60.                    buffer.  The result is a floating-point value in the range
  61.  
  62.  
  63.  
  64.                                                                         PPPPaaaaggggeeee 1111
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71. ggggllllAAAAccccccccuuuummmm((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllAAAAccccccccuuuummmm((((3333GGGG))))
  72.  
  73.  
  74.  
  75.                    [0, 1], which is multiplied by _v_a_l_u_e and added to the
  76.                    corresponding pixel component in the accumulation buffer,
  77.                    thereby updating the accumulation buffer.
  78.  
  79.      GGGGLLLL____LLLLOOOOAAAADDDD       Similar to GGGGLLLL____AAAACCCCCCCCUUUUMMMM, except that the current value in the
  80.                    accumulation buffer is not used in the calculation of the
  81.                    new value.  That is, the R, G, B, and A values from the
  82.                                                              n
  83.                    currently selected buffer are divided by 2 -1, multiplied
  84.                    by _v_a_l_u_e, and then stored in the corresponding accumulation
  85.                    buffer cell, overwriting the current value.
  86.  
  87.      GGGGLLLL____AAAADDDDDDDD        Adds _v_a_l_u_e to each R, G, B, and A in the accumulation
  88.                    buffer.
  89.  
  90.      GGGGLLLL____MMMMUUUULLLLTTTT       Multiplies each R, G, B, and A in the accumulation buffer
  91.                    by _v_a_l_u_e and returns the scaled component to its
  92.                    corresponding accumulation buffer location.
  93.  
  94.      GGGGLLLL____RRRREEEETTTTUUUURRRRNNNN     Transfers accumulation buffer values to the color buffer or
  95.                    buffers currently selected for writing.  Each R, G, B, and
  96.                    A component is multiplied by _v_a_l_u_e, then multiplied by
  97.                     n                              n
  98.                    2 -1, clamped to the range [0, 2 -1], and stored in the
  99.                    corresponding display buffer cell.  The only fragment
  100.                    operations that are applied to this transfer are pixel
  101.                    ownership, scissor, dithering, and color writemasks.
  102.  
  103.      To clear the accumulation buffer, call ggggllllCCCClllleeeeaaaarrrrAAAAccccccccuuuummmm with R, G, B, and A
  104.      values to set it to, then call ggggllllCCCClllleeeeaaaarrrr with the accumulation buffer
  105.      enabled.
  106.  
  107. NNNNOOOOTTTTEEEESSSS
  108.      Only pixels within the current scissor box are updated by a ggggllllAAAAccccccccuuuummmm
  109.      operation.
  110.  
  111. EEEERRRRRRRROOOORRRRSSSS
  112.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated if _o_p is not an accepted value.
  113.  
  114.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if there is no accumulation buffer or
  115.      if the  _d_r_a_w drawable is not identical to the _r_e_a_d drawable (see
  116.      ggggllllXXXXMMMMaaaakkkkeeeeCCCCuuuurrrrrrrreeeennnnttttRRRReeeeaaaaddddSSSSGGGGIIII).
  117.  
  118.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ggggllllAAAAccccccccuuuummmm is executed between the
  119.      execution of ggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of ggggllllEEEEnnnndddd.
  120.  
  121. AAAASSSSSSSSOOOOCCCCIIIIAAAATTTTEEEEDDDD GGGGEEEETTTTSSSS
  122.      ggggllllGGGGeeeetttt with argument GGGGLLLL____AAAACCCCCCCCUUUUMMMM____RRRREEEEDDDD____BBBBIIIITTTTSSSS
  123.      ggggllllGGGGeeeetttt with argument GGGGLLLL____AAAACCCCCCCCUUUUMMMM____GGGGRRRREEEEEEEENNNN____BBBBIIIITTTTSSSS
  124.      ggggllllGGGGeeeetttt with argument GGGGLLLL____AAAACCCCCCCCUUUUMMMM____BBBBLLLLUUUUEEEE____BBBBIIIITTTTSSSS
  125.      ggggllllGGGGeeeetttt with argument GGGGLLLL____AAAACCCCCCCCUUUUMMMM____AAAALLLLPPPPHHHHAAAA____BBBBIIIITTTTSSSS
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.                                                                         PPPPaaaaggggeeee 2222
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139. ggggllllAAAAccccccccuuuummmm((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllAAAAccccccccuuuummmm((((3333GGGG))))
  140.  
  141.  
  142.  
  143. MMMMAAAACCCCHHHHIIIINNNNEEEE DDDDEEEEPPPPEEEENNNNDDDDEEEENNNNCCCCIIIIEEEESSSS
  144.      On IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems the following restrictions apply:
  145.  
  146.           1.  When _o_p is GGGGLLLL____RRRREEEETTTTUUUURRRRNNNN, _v_a_l_u_e must be greater than or equal to
  147.               -4.0 and strictly less than 4.0.  If _v_a_l_u_e is outside this
  148.               range, the results are undefined.
  149.  
  150.           2.  For other values of _o_p, _v_a_l_u_e must be greater than or equal to
  151.               -1.0 and strictly less than 1.0.  If _v_a_l_u_e is outside this
  152.               range, the results are undefined.
  153.  
  154.      RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems do not support negative
  155.      values in the accumulation buffer.
  156.  
  157.  
  158. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  159.      ggggllllBBBBlllleeeennnnddddFFFFuuuunnnncccc, ggggllllCCCClllleeeeaaaarrrr, ggggllllCCCClllleeeeaaaarrrrAAAAccccccccuuuummmm, ggggllllCCCCooooppppyyyyPPPPiiiixxxxeeeellllssss, ggggllllDDDDrrrraaaawwwwBBBBuuuuffffffffeeeerrrr, ggggllllGGGGeeeetttt,
  160.      ggggllllLLLLooooggggiiiiccccOOOOpppp,
  161.      ggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeee, ggggllllPPPPiiiixxxxeeeellllTTTTrrrraaaannnnssssffffeeeerrrr, ggggllllRRRReeeeaaaaddddBBBBuuuuffffffffeeeerrrr, ggggllllRRRReeeeaaaaddddPPPPiiiixxxxeeeellllssss, ggggllllSSSScccciiiissssssssoooorrrr,
  162.      ggggllllSSSStttteeeennnncccciiiillllOOOOpppp
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.                                                                         PPPPaaaaggggeeee 3333
  199.  
  200.  
  201.  
  202.